4ca00f9f3dda302fa0671560d1915a233c84e78c,h2o-algos/src/main/java/hex/deeplearning/DeepLearningModel.java,DeepLearningModel,doScoring,#Frame#Frame#Key#Key#,1613
Before Change
Log.info("Mean reconstruction error on training data: " + l2.mean() + "\n");
mse_frame.delete();
hex.ModelMetricsAutoEncoder mm1 = (ModelMetricsAutoEncoder)ModelMetrics.getFromDKV(this,ftrain);
assert(err.scored_train._mse == l2.mean());
_output._training_metrics = mm1;
}
After Change
final Vec l2 = mse_frame.anyVec();
Log.info("Mean reconstruction error on training data: " + l2.mean() + "\n");
mse_frame.delete();
ModelMetrics mtrain = ModelMetrics.getFromDKV(this,ftrain); //updated by model.score
_output._training_metrics = mtrain;
err.scored_train = new ScoredClassifierRegressor(mtrain);
}
if (ftest != null) {
final Frame mse_frame = scoreAutoEncoder(ftest, Key.make());
final Vec l2 = mse_frame.anyVec();
Log.info("Mean reconstruction error on validation data: " + l2.mean() + "\n");
mse_frame.delete();
ModelMetrics mtest = ModelMetrics.getFromDKV(this,ftest); //updated by model.score
_output._validation_metrics = mtest;
err.scored_valid = new ScoredClassifierRegressor(mtest);
}
} else {
if (printme) Log.info("Scoring the model.");
// compute errors
final String m = model_info().toString();
if (m.length() > 0) Log.info(m);
final Frame trainPredict = score(ftrain);
trainPredict.delete();
hex.ModelMetrics mtrain = ModelMetrics.getFromDKV(this,ftrain);
_output._training_metrics = mtrain;
err.scored_train = new ScoredClassifierRegressor(mtrain);
hex.ModelMetrics mtest = null;
hex.ModelMetricsSupervised mm1 = (ModelMetricsSupervised)ModelMetrics.getFromDKV(this,ftrain);
if (mm1 instanceof ModelMetricsBinomial) {
ModelMetricsBinomial mm = (ModelMetricsBinomial)(mm1);
err.train_confusion_matrix = mm.cm();
}
else if (mm1 instanceof ModelMetricsMultinomial) {
ModelMetricsMultinomial mm = (ModelMetricsMultinomial)(mm1);
err.train_confusion_matrix = mm.cm();
err.train_hitratio = mm._hit_ratios;
}
if (get_params()._score_training_samples != 0 && get_params()._score_training_samples < ftrain.numRows()) {
_output._training_metrics._description = "Metrics reported on " + ftrain.numRows() + " training set samples";
}
if (ftest != null) {
Frame validPred = score(ftest);
validPred.delete();
if (ftest != null) {
mtest = ModelMetrics.getFromDKV(this, ftest);
_output._validation_metrics = mtest;
err.scored_valid = new ScoredClassifierRegressor(mtest);
}